#include "StdAfx.h"
#include "VarListImp.h"
#include "varlistVisitor.h"
CVarListImp::CVarListImp(void)
{
}

CVarListImp::~CVarListImp(void)
{
}

void CVarListImp::VisitItems(IVarListVisitor& visit) const
{
	POSITION pos = m_varMap.GetStartPosition();
	while(pos)
	{
		UINT nIdx;
		_variant_t value;
		m_varMap.GetNextAssoc(pos, nIdx, value);
		visit.OnVisitItem(nIdx, value);
	}
}

void CVarListImp::UpdateItems(IVarListUpdater& updater)
{
	POSITION pos = m_varMap.GetStartPosition();
	while(pos)
	{
		UINT nIdx;
		_variant_t value;
		m_varMap.GetNextAssoc(pos, nIdx, value);

		if(updater.OnUpdateItem(nIdx, value))
			m_varMap[nIdx] = value;
	}
}
